package logIn;

import java.sql.*;

/**
 * JDBC工具类，简化JDBC的连接
 * @Author Jian Chen long
 * @Date 2021/6/15 15:16
 */
public class MysqlConnectionTool {
    /**
     * 工具类中的构造方法都是私有的
     * 因为工具类当中的方法都是静态的，不与要new对象，直接采用类名调用。
     */
    private MysqlConnectionTool(){}

    //静态代码块在类加载时执行，并且只执行一次
    static {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取数据库连接对象
     * @return 连接对象
     * @throws SQLException
     */
    public static Connection getConnection() throws SQLException {
        return (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/warehouse?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC",
                "root","123456" );
    }


    /**
     * 关闭资源
     * @param conn  连接对象
     * @param ps    数据库操作对象
     * @param rs   结果集
     */
    public static void close(Connection conn, Statement ps, ResultSet rs){
        if (rs != null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if (rs != null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if (rs != null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
